Agents are software entities. Many agents may run as processes in a single computer. Agents may run in multiprocessors or in computers that are connected by a communications network such as a LAN, the Internet or a wireless system. One or many agents may run in physically realized devices such as automobiles, tanks, trucks, ships or robots. They may run in modules that are used to make robots that may be homogeneous, heterogeneous, serially connected or lattice based. An agent can exhibit an individual behavior or more desirable a set of agents may exhibit a coordinated group behavior. The actual group behavior depends on both on the coordination signals and the method of communication.
Reconfigurable robots may be classified as homogeneous robots and heterogeneous robots. In a homogeneous robot and/or in a heterogeneous robot, the position of a robot module in the robot may define the module""s function, or the function of the module may define its position in the robot. Reconfigurable robots also may be classified by whether their modules are organized in a lattice or not. Lattice-based robots are usually homogeneous and need to reconfigure in order to move (i.e., as their topology changes, their center of mass translates accordingly). In contrast, non-lattice robots can either translate while reconfiguring or their reconfiguration and locomotion stages can be separated. This separation allows them to reconfigure and then select an efficient configuration-dependent gait.
Both master control and master-less control systems have been proposed. In a master controlled system, a designated control module sends multiple commands to individual modules and synchronizes their actions. In a master-less control system, each module manages its own actions. To ensure synchronization between modules in a master-less control system, every module may have an internal clock that is synchronized with all the others modules.
The present application teaches a biologically inspired approach to communication among and control of autonomous agents communicatively coupled together in a reconfigurable network topology. A protocol for distributed control allows autonomous agents to negotiate a group task, such as locomotion or self-reconfiguration, for the agents and to synchronize individual agent actions to effect the group task. A protocol for adaptive communication allows autonomous agents, such as physically coupled self-sufficient robot modules, to continuously discover changes in their local topology in order to collaborate and coordinated their collective actions.
According to an aspect, a local topology is discovered, where the local topology includes a type of a communication connection (e.g., number and nature of available communication links) to autonomous agents communicatively coupled together in a reconfigurable network topology. Coordination may be achieved using control messages. A control message having content is received, and, in response to the control message, an action is determined, and possibly executed, based upon the received message content and the determined local topology. Implementations of the systems and techniques described here may occur in hardware, firmware, software or a combination of these, and may include machine instructions for causing a machine to perform the operations described.